home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Updates / HD-Installer / jst_dev / sources / src / loaders / Puggsy / puggsyhd.asm < prev    next >
Assembly Source File  |  2000-04-12  |  2KB  |  153 lines

  1. ; *** Puggsy Hard Disk Loader V$VER
  2. ; *** Written by Jean-François Fabre
  3.  
  4.  
  5.     include    "jst.i"
  6.  
  7.     HD_PARAMS    "",0,0
  8.  
  9. _loader:
  10.     move.l    #$80000,D0
  11.     JSRABS    AllocExtMem
  12.     RELOC_MOVEL    D0,ExtBase
  13.     beq    MemErr
  14.  
  15.     Mac_printf    "Puggsy HD Loader V1.0"
  16.     Mac_printf    "Coded by Jean-François Fabre © 1997"
  17.  
  18.     TESTFILE    introname
  19.     tst.l    D0
  20.     bne    FileErr
  21.  
  22.     move.l    #1000,D0
  23.     JSRABS    LoadSmallFiles
  24.  
  25.     moveq.l    #0,D0
  26.     move.l    #CACRF_CopyBack,D1
  27.     JSRABS    Degrade
  28.  
  29. ;    WAIT_LMB
  30.  
  31.     GO_SUPERVISOR
  32.     SAVE_OSDATA    $80000
  33.     move.w    #$2700,SR
  34.  
  35.     bsr    InstallBoot
  36.  
  37.     ; **** boot stuff and patch
  38.  
  39.     JSRGEN    FlushCachesHard
  40.     move.w    #$7FFF,dmacon+$DFF000
  41.     JSRGEN    BlackScreen
  42.     JMP    $918.W
  43.  
  44. InstallBoot:
  45.     lea    introname(pc),A0
  46.     lea    $800.W,A1
  47.     moveq    #-1,D1
  48.     moveq    #0,D0
  49.     JSRGEN    ReadFile
  50.  
  51.     lea    $800.W,A0
  52.     move.l    A0,A1
  53.     JSRGEN    RNCDecrunch
  54.  
  55.     PATCHGENJMP    $1248.W,RNCDecrunch
  56.     PATCHUSRJMP    $2502.W,LoadFile
  57.     PATCHUSRJMP    $1074.W,KbInt
  58.     PATCHUSRJMP    $148C.W,GetExtMem_1
  59.     PATCHUSRJMP    $208E.W,PatchMain
  60.     PATCHUSRJMP    $20FE.W,PatchIntro2
  61.     move.w    #$4E75,$21C4.W
  62.  
  63. ;    move.w    #$4E75,$22CE.W
  64. ;    move.w    #$4E75,$23B0.W
  65.  
  66.     RTS
  67.  
  68.  
  69. PatchIntro2:
  70.     PATCHUSRJMP    $D40C,LoadFile
  71.     PATCHGENJMP    $DF0A,RNCDecrunch
  72.     PATCHUSRJMP    $D028,PatchMain
  73.     move.w    #$4E75,$D0E2
  74.     PATCHUSRJMP    $1CE9A,GetExtMem_3
  75.     JSRGEN    FlushCachesHard
  76.     jmp    $CC26
  77.  
  78. GetExtMem_1:
  79.     move.l    ExtBase(pc),$8F4.W
  80.     RTS
  81.  
  82. GetExtMem_2:
  83.     move.l    ExtBase(pc),$2FB74
  84.     RTS
  85.  
  86. GetExtMem_3:
  87.     move.l    ExtBase(pc),$7F2E4
  88.     RTS
  89.  
  90. KbInt:
  91.     move.b    D0,$808.W
  92.     cmp.b    #$59,D0
  93.     bne    noquit$
  94.     JSRGEN    InGameExit
  95. noquit$
  96.     RTS
  97.  
  98. KbInt_2:
  99.     move.b    D0,$20058
  100.     cmp.b    #$59,D0
  101.     bne    noquit$
  102.     JSRGEN    InGameExit
  103. noquit$
  104.     RTS
  105.  
  106. PatchMain:
  107.     PATCHUSRJMP    $2FB2A,GetExtMem_2
  108.     PATCHUSRJMP    $1EADC,LoadFile
  109.     PATCHUSRJSR    $23F3A,Patch2ndButton
  110.     PATCHUSRJSR    $1FFDC,KbInt_2
  111.     PATCHGENJMP    $28B1E,RNCDecrunch
  112.     move.w    #$4E71,$23F40
  113.  
  114.     move.w    #$4E75,$1E792            ; goto root block
  115.  
  116.     JSRGEN    FlushCachesHard
  117.     JSRGEN    GoECS
  118.     JMP    $1B2C0
  119.  
  120. Patch2ndButton:
  121.     movem.l    D0/A0,-(sp)
  122.     move.w    $DFF016,D0
  123.     move.w    #$CC01,$DFF034    ; resets button read
  124.     btst    #14,D0
  125.     movem.l    (sp)+,D0/A0
  126.     rts
  127.  
  128. LoadFile:
  129.     STORE_REGS
  130.     moveq    #0,D0
  131.     moveq    #-1,D1
  132.     JSRGEN    ReadFile
  133.     RESTORE_REGS
  134.     moveq    #0,D0
  135.     RTS
  136.  
  137. trainer:
  138.     dc.l    0
  139. ExtBase:
  140.     dc.l    0
  141. introname:
  142.     dc.b    "INTRO.BIN",0
  143.     even
  144.  
  145.  
  146. MemErr:
  147.     Mac_printf    "** Not enough memory to run Puggsy!"
  148.     JMPABS    CloseAll
  149.  
  150. FileErr:
  151.     Mac_printf    "** File ''INTRO.BIN'' missing!"
  152.     JMPABS    CloseAll
  153.